package cn.lsp.sharkmall.service;

import cn.lsp.sharkmall.pojo.entity.GoodsCategory;
import cn.lsp.sharkmall.pojo.vo.IndexCategoryVO;
import cn.lsp.sharkmall.util.PageQueryUtil;
import cn.lsp.sharkmall.util.PageResult;

import java.util.List;

/**
 * @Description: 商品分类服务层接口
 * @Author: sweeterjava@163.com
 * @Date: 2023/2/13
 * @Time: 00:03
 */
public interface ICategoryService {
    /**
     * 添加商品分类数据
     *
     * @return
     */
    String saveCategory(GoodsCategory goodsCategory);

    /**
     * 修改商品分类数据
     *
     * @return
     */
    String updateGoodsCategory(GoodsCategory goodsCategory);

    /**
     * 获取商品分类数据
     *
     * @return
     */
    GoodsCategory getGoodsCategoryById(Long id);

    /**
     * 删除商品分类数据
     *
     * @return
     */
    Boolean deleteBatch(Long[] ids);

    /**
     * 返回分类数据(首页调用)
     *
     * @return
     */
    List<IndexCategoryVO> getCategoriesForIndex();

    /**
     * 后台分页
     *
     * @param pageUtil
     * @return
     */
    PageResult getCategorisPage(PageQueryUtil pageUtil);

    /**
     * 根据parentId和level获取分类列表
     *
     * @param parentIds
     * @param categoryLevel
     * @return
     */
    List<GoodsCategory> selectByLevelAndParentIdsAndNumber(List<Long> parentIds, int categoryLevel);

}
